package org.dromara.nursing.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.nursing.domain.Elder;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 老人基础信息视图对象 ms_elder
 *
 * @author Xue
 * @date 2025-03-18
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Elder.class)
public class ElderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "id")
    private Long elderId;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String elderName;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private Long gender;

    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    private Date birthDate;

    /**
     * 年龄
     */
    @ExcelProperty(value = "年龄")
    private Long age;

    /**
     * 身高(cm)
     */
    @ExcelProperty(value = "身高(cm)")
    private String height;

    /**
     * 体重(kg)
     */
    @ExcelProperty(value = "体重(kg)")
    private String weight;

    /**
     * BMI指数
     */
    @ExcelProperty(value = "BMI指数")
    private Long bmi;

    /**
     * 证件类型
     */
    @ExcelProperty(value = "证件类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_card_type")
    private Long idCardType;

    /**
     * 证件号码
     */
    @ExcelProperty(value = "证件号码")
    private String idCard;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 政治面貌
     */
    @ExcelProperty(value = "政治面貌")
    private String political;

    /**
     * 文化程度
     */
    @ExcelProperty(value = "文化程度")
    private String education;

    /**
     * 职业
     */
    @ExcelProperty(value = "职业")
    private String occupation;

    /**
     * 婚姻状况
     */
    @ExcelProperty(value = "婚姻状况")
    private String maritalStatus;

    /**
     * 血型
     */
    @ExcelProperty(value = "血型")
    private String bloodType;

    /**
     * 宗教信仰
     */
    @ExcelProperty(value = "宗教信仰")
    private String religion;

    /**
     * 兴趣爱好
     */
    @ExcelProperty(value = "兴趣爱好")
    private String hobby;

    /**
     * 是否在院
     */
    @ExcelProperty(value = "是否在院", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_is_active")
    private Long isActive;

    /**
     * 省份
     */
    @ExcelProperty(value = "省份")
    private String province;

    /**
     * 城市
     */
    @ExcelProperty(value = "城市")
    private String city;

    /**
     * 区县
     */
    @ExcelProperty(value = "区县")
    private String district;

    /**
     * 街道
     */
    @ExcelProperty(value = "街道")
    private String street;

    /**
     * 社区/村
     */
    @ExcelProperty(value = "社区/村")
    private String community;

    /**
     * 详细地址
     */
    @ExcelProperty(value = "详细地址")
    private String addressDetail;

    /**
     * 照护者
     */
    @ExcelProperty(value = "照护者")
    private String caregiver;

    /**
     * 健康状况简述
     */
    @ExcelProperty(value = "健康状况简述")
    private String healthStatus;

    /**
     * 特殊需求
     */
    @ExcelProperty(value = "特殊需求")
    private String specialNeeds;

    /**
     * 紧急联系人ID
     */
    @ExcelProperty(value = "紧急联系人ID")
    private Long emergencyContactId;

    /**
     * 医保卡号
     */
    @ExcelProperty(value = "医保卡号")
    private String medicalInsuranceNo;

    /**
     * 入住日期
     */
    @ExcelProperty(value = "入住日期")
    private Date admissionDate;

    /**
     * 房间ID
     */
    @ExcelProperty(value = "房间ID")
    private Long roomId;

    /**
     * 饮食偏好
     */
    @ExcelProperty(value = "饮食偏好")
    private String mealPreference;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;


}
